package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.TxnSensitiveCfg;

import java.util.List;

/**
 * 交易敏感信息配置表操作接口类
 * Created by wangcheng on 2021/2/25 17:03
 */
public interface TxnSensitiveCfgMapper {
    /**
     * 加载交易敏感信息配置信息
     *
     * @param dbPoolCacheNodeName 数据库连池缓存节点名
     * @return 交易敏感信息配置信息
     * @throws Exception 异常
     */
    List<TxnSensitiveCfg> loadTxnSensitiveCfg(String dbPoolCacheNodeName) throws Exception;

    /**
     * 登记交易敏感信息配置表
     *
     * @param txnSensitiveCfg 交易敏感信息配置信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertTxnSensitiveCfg(TxnSensitiveCfg txnSensitiveCfg) throws Exception;

    /**
     * 根据主键更新交易敏感信息配置表
     *
     * @param txnSensitiveCfg 交易敏感信息配置信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateTxnSensitiveCfgByPrimaryKey(TxnSensitiveCfg txnSensitiveCfg) throws Exception;

    /**
     * 根据主键查询交易敏感信息配置信息
     *
     * @param instId         多法人标识
     * @param msgSrcId       源系统标识
     * @param txnNum         内部交易码
     * @param bizType        业务细分
     * @param oprType        操作类型
     * @param sensitiveField 敏感字段
     * @return 交易敏感信息配置信息
     * @throws Exception 异常
     */
    TxnSensitiveCfg selectTxnSensitiveCfgByPrimaryKey(String instId, String msgSrcId, String txnNum, String bizType, String oprType, String sensitiveField) throws Exception;

    /**
     * 根据交易码查询交易敏感信息配置信息
     *
     * @param instId   多法人标识
     * @param msgSrcId 源系统标识
     * @param txnNum   内部交易码
     * @param bizType  业务细分
     * @param oprType  操作类型
     * @return 交易敏感信息配置信息
     * @throws Exception 异常
     */
    List<TxnSensitiveCfg> selectTxnSensitiveCfgByTxnNum(String instId, String msgSrcId, String txnNum, String bizType, String oprType) throws Exception;
}
